Computing systems do not currently have the ability to accurately account for disk Input/Output (IO) a given process has actually performed either directly or indirectly in terms of the number of IOs performed, total size of the IOs, disk time consumed, and time spent in a disk queue. However, in many instances it would be useful to have an accurate account of disk IO for various system performance issues.
Previous attempts to accurately account for disk IO relied on making estimates about whether an IO would eventually end up hitting the disk. However, since many IOs are sent to cache and thus do not hit the disk, the estimates would often lead to over counts and under counts. In addition, there was no way to estimate the amount of disk time a process consumed in an efficient manner. Expensive detailed IO tracing analysis tools were needed to determine disk time.
Previous attempts to accurately account for disk IO were also unable to account for IOs that would appear to be done by the system, but were in reality the source of a process triggering the work. For example, a process modifies a file with buffered writes and sometime later, the cache manager writes it out to disk. Such disk IO was never attributable back to the process that modified the file.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.